'''
1、本节课学习按键测试，按键按下LED点亮，松开按键LED熄灭
2、本节课主要学习GPIO的输入模式，即按键的信号需要输入给ESP32
3、按键操作需要特别注意的是什么呢？
   消抖，按键操作需要消抖

消抖的方法：
一般有硬件消抖和软件消抖两种办法
1、硬件消抖
   一般采用RC电路实现，这里我们只要知道有这个方法就可以了。
2、软件消抖
   今天我们会使用延时消抖法，什么是延时消抖法呢？
   就是在检测到按键按下时，延时一段时间（比如10ms）再次读取按键IO的电平，
   检测两次读取的结果是否相同，相同则认为按键被按下。
'''

'''

按键使用的GPIO：D2
LED 使用的GPIO：D5

当按键按下时，LED 点亮
当松开按键时，LED 熄灭

'''

#导入Pin模块
from machine import Pin
import time

#定义按键控制对象
key = Pin(2, Pin.IN)
led = Pin(5, Pin.OUT)

#程序入口
if __name__=="__main__":
    led.value(0)  #初始化LED，熄灭状态
    
    while True:
        if key.value() == 1:
            time.sleep(0.02)
            if key.value() == 1:
                led.value(1)
        else:
            led.value(0)
